﻿<?PHP

/**
 * Функция отправляет заданный в форме текст по почте 
 * аргументу функции:
 * email - адрес получателя
 * subject - тема сообщения
 * Для компании 1ES
 * 
 * @author agrouzdev
 * @package 1es
 */

function smarty_function_sendmessage1es($params, &$smarty)
{
	$fieldset = array(
		array('fio'=>'Фамилия, имя','email'=>'E-mail','phone'=>'Телефон','question'=>'Вопрос'),
		array('fio'=>'Фамилия, имя','email_'=>'E-mail','phone'=>'Телефон','comment'=>'Комментарий', 'address' => 'Адрес', 'item'=>'ID товара')
	);
	
	if (!isset($params['fieldset'])) throw new fwException("Не установлен набор полей",0);
	if (!isset($params['email'])) throw new fwException("Не установлен e-mail получателя сообщения",0);
	
	$set = $fieldset[$params['fieldset']];
	$message = array();
	foreach ($set as $fName => $fDescr) {
		if (!isset($_POST[$fName])) return "Не заполнено поле ".$fDescr;
		if (($fName=='email') && (!preg_match("/^([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$/",$_POST[$fName])==1))
			return "Вы ввели адрес электронной почты в неправильном формате";
		
		$message[] = $fDescr.': '.safeText($_POST[$fName]);
	}
	$messageStr = implode("\r\n",$message);
	$subject = isset($params['subject']) ? $params['subject'] : "";
	if (@mail( $params["email"], $subject, $messageStr))
	{
		if ($params['fieldset']==0)
			return "Спасибо, ваше сообщение отправлено. Наши специалисты постараются ответить на ваш вопрос в максимально сжатые сроки.";
		else if ($params['fieldset']==1)
			return "Заказ отправлен.";
	}
	else
		return "Во время отправки сообщения произошла неизвестная ошибка.";
}

function safeText($c) {
		$c = str_replace("<", "&lt;", $c);
		$c = str_replace("<", "&gt;", $c);
		$c = str_replace("\$", "", $c);
		$c = stripslashes($c);
		return $c;
}
?>